table of contents
PAPI_read(3) | PAPI | PAPI_read(3) |
NAME¶
PAPI_read - read hardware counters from an event set
PAPI_accum - accumulate and reset counters in an event set
SYNOPSIS¶
C Interface
#include <papi.h> int PAPI_read(int EventSet, long_long *values); int PAPI_accum(int EventSet, long_long *values);
Fortran Interface
#include fpapi.h PAPIF_read(C_INT EventSet, C_LONG_LONG(*) values, C_INT check) PAPIF_accum(C_INT EventSet, C_LONG_LONG(*) values, C_INT check)
DESCRIPTION¶
These calls assume an initialized PAPI library and a properly added event set.
PAPI_read() copies the counters of the indicated event set into the array values. The counters continue counting after the read.
PAPI_accum() adds the counters of the indicated event set into the array values. The counters are zeroed and continue counting after the operation.
Note the differences between PAPI_read() and PAPI_accum(), specifically that PAPI_accum() resets the values array to zero.
ARGUMENTS¶
EventSet -- an integer handle for a PAPI Event Set as created by PAPI_create_eventset(3)
*values -- an array to hold the counter values of the counting events
RETURN VALUES¶
On success, these functions return PAPI_OK.
On error, a non-zero error code is returned.
ERRORS¶
- PAPI_EINVAL
- One or more of the arguments is invalid.
- PAPI_ESYS
- A system or C library call failed inside PAPI, see the errno variable.
- PAPI_ENOEVST
- The event set specified does not exist.
EXAMPLES¶
do_100events();
if (PAPI_read(EventSet, values) != PAPI_OK)
handle_error(1);
/* values[0] now equals 100 */
do_100events();
if (PAPI_accum(EventSet, values) != PAPI_OK)
handle_error(1);
/* values[0] now equals 200 */
values[0] = -100;
do_100events();
if (PAPI_accum(EventSet, values) != PAPI_OK)
handle_error(1);
/* values[0] now equals 0 */
BUGS¶
These functions have no known bugs.
SEE ALSO¶
PAPI_set_opt(3), PAPI_reset(3), PAPI_start(3), PAPI(3), PAPIF(3)
September, 2004 | PAPI Programmer's Reference |